﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BLLEP;
using BLLEP.Funcionalidad;
using EstacionDePoder.Codigo;

namespace EstacionDePoder.Tienda
{
    public partial class Tiendita : FormGenerico
    {
        private void CargarProductos()
        {
            foreach (EP_ProductoVidriera productoVidriera in new BLLProductoVidriera().TraerProductos())
            {
                Panel pnlContenedorItemMostrador = new Panel() { CssClass = "contenedorItemMostrador" };

                Image imgProducto = new Image();
                imgProducto.ImageUrl = "~/Datos/ImagenesProductos/" + productoVidriera.EP_Producto.Imagen;
                pnlContenedorItemMostrador.Controls.Add(imgProducto);

                Panel pnlNombreProducto = new Panel() { CssClass = "contenedorItemMostradorTexto" };
                Label lblNombre = new Label() { Text = productoVidriera.EP_Producto.Nombre };
                pnlNombreProducto.Controls.Add(lblNombre);
                pnlContenedorItemMostrador.Controls.Add(pnlNombreProducto);

                decimal? precio = productoVidriera.EP_Producto.Costo * DolarPeso * RecargoImpositivo + productoVidriera.Ganancia;
                precio = Math.Ceiling(precio.Value);
                Panel pnlPrecio = new Panel() { CssClass = "itemPrecio" };
                Label lblPrecio = new Label() { Text = "PRECIO: $" + precio.Value.ToString("N2") + " " + productoVidriera.EP_Producto.EP_Moneda.Nombre };
                pnlPrecio.Controls.Add(lblPrecio);
                pnlContenedorItemMostrador.Controls.Add(pnlPrecio);

                Button btnComprar = new Button();
                btnComprar.Text = "COMPRAR";
                btnComprar.CssClass = "botonComprar";
                btnComprar.CommandArgument = productoVidriera.IdProductoVidriera.ToString();
                btnComprar.Click += btnComprar_Click;
                pnlContenedorItemMostrador.Controls.Add(btnComprar);

                pnlContenedorMostrador.Controls.Add(pnlContenedorItemMostrador);
            }
        }

        private void ActualizarManejadoresBoton(Control control)
        {
            Button btn = control as Button;

            if (btn != null && btn.CssClass.Equals("botonComprar"))
                btn.Click += btnComprar_Click;

            foreach (Control item in control.Controls)
                ActualizarManejadoresBoton(item);
        }


        protected void Page_Load(object sender, EventArgs e)
        {
            CargarProductos();
            ActualizarManejadoresBoton(pnlContenedorMostrador);
        }

        protected void btnComprar_Click(object sender, EventArgs e)
        {
            Button btn = sender as Button;
            int idProductoVidriera = int.Parse(btn.CommandArgument);

            CarritoManager manager = new CarritoManager(Context);
            manager.AgregarItem(idProductoVidriera);

            Response.Redirect("Carrito.aspx", true);
        }
    }
}